package com.boil.qz.safekavass.shiro.util;

import com.boil.util.Constants;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.Md5Hash;

import java.util.Locale;

/**
 * Created by ChenYong on 2017-05-03.
 * <br>
 * Shiro 工具类。
 */
public final class ShiroUtils {
    /**
     * 对密码进行 MD5 加密。
     *
     * @param passwd 密码
     * @return 密码密文
     */
    public static String passwd2Md5(String passwd) {
        if (StringUtils.isBlank(passwd)) {
            return "";
        }

        return new Md5Hash(passwd).toHex().toLowerCase(Locale.getDefault());
    }

    /**
     * 对密码进行 MD5 加密，利用密码的盐值迭代 10 次。
     *
     * @param passwd     密码
     * @param passwdSalt 密码的盐值
     * @return 密码密文
     */
    public static String passwd2Md5(String passwd, String passwdSalt) {
        if (StringUtils.isBlank(passwd) || StringUtils.isBlank(passwdSalt)) {
            return "";
        }

        return new Md5Hash(passwd, passwdSalt, Constants.VALUE_10).toHex().toLowerCase(Locale.getDefault());
    }
}